FINS Salesforce Topic Listener API - Implementation Template
Data mappings
This document provides information generated from the DataWeave scripts included in the project, such as function definitions, variable definitions, and data mapping tables.
Module | Description |
---|---|
functions | |
map-accounts-to-cim | This transformation produces a single canonical FINS Account from a SF Financial Account |
map-transactions-to-cim | This transformation produces a list of canonical FINS Transactions from a SF Financial Account Transaction list |
map-cards-to-cim | This transformation produces a list of canonical FINS Cards for a SF Financial Account |
map-contact-to-cim | Salesforce Contacts pushtopic event message to CIM Mapping |
map-contact-address-to-cim | This transformation produces a list of canonical FINS ContactPointAddress for a SF Financial Account |
map-customer-and-contact-points-to-cim | Salesforce pushtopic event message to CIM Mapping |
map-household-to-cim | Salesforce Households pushtopic event message to CIM Mapping |
map-leads-to-cim | This transformation produces a list of canonical FINS Transactions from a SF Financial Account Transaction list |
map-opportunities-to-cim | Salesforce Opportunities pushtopic event message to CIM Mapping |
functions
Source:
./src/main/resources/dwl/functions.dwl
Functions
fun sfRecordTypeToFins (sfRecordType)
Function to map Record Type to Account type of Banking Library
param
sfRecordType
Name of the record type in Salesforce
return string Account type in Banking library
fun sfLoanTypeToFins (sfLoanType)
Function to map Loan type of Salesforce to Loan type of Banking Library
param
sfLoanType
Name of the Loan type in Salesforce
return string Loan type in Banking library
fun sfDepositTypeToFins (sfDepositType)
Function to map DepositType of Salesforce to Deposit type of Banking Library
param
sfDepositType
Name of the Deposit type in Salesforce
return string Deposit type in Banking library
fun sfBlockchainTypeToFins (sfBlockchainType)
Function to map Blockchain type of Salesforce to Blockchain type of Banking Library
param
sfBlockchainType
Name of the Blockchain type in Salesforce
return string Blockchain type in Banking library
fun sfLedgerTypeToFins (sfLedgerType)
Function to map Ledger type of Salesforce to Ledger type of Banking Library
param
sfLedgerType
Name of the Ledger type in Salesforce
return string Ledger type in Banking library
fun sfAccountStatusToFins (sfAccountStatus)
Function to map Account Status of Salesforce to Account Status of Banking Library
param
sfAccountStatus
Name of the Account Status in Salesforce
return string Account Status in Banking library
fun sfTransactionTypeToFins (sfTransactionType)
Function to map Transaction type of Salesforce to Transaction type of Banking Library
param
sfTransactionType
Name of the Transaction type in Salesforce
return string Transaction type in Banking library
fun sfTransactionSubtypeToFins (sfTransactionSubtype)
Function to map TransactionSubtype of Salesforce to TransactionSubtype of Banking Library
param
sfTransactionSubtype
Name of the Transaction Subtype in Salesforce
return string Transaction Subtype in Banking library
fun sfTransactionStatusToFins (sfTransactionStatus)
Function to map Transaction Status of Salesforce to Transaction Status of Banking Library
param
sfTransactionStatus
Name of the Transaction Status in Salesforce
return string Transaction Status in Banking library
fun sfTransactionDisputedReasonToFins (sfTransactionDisputedReason)
Function to map Dispute Reason Status of Salesforce to Transaction Dispute Reason of Banking Library
param
sfTransactionDisputedReason
Name of the Transaction Dispute Reason in Salesforce
return string Transaction Dispute Reason in Banking library
fun sfDepositTypeToFins (sfDepositType)
Function to map Deposit type of Salesforce to Deposit type of Banking Library
param
sfDepositType
Name of the Deposit type in Salesforce
return string Deposit type in Banking library
fun getFormattedDateTime (datetimeToFormat)
Function to format date as "yyyy-MM-dd'T'HH:mm:ssz"
param
datetimeToFormat
Date in to format
return string formatted date
map-accounts-to-cim
This transformation produces a single canonical FINS Account from a SF Financial Account
Source:
./src/main/resources/dwl/map-accounts-to-cim.dwl
Mapping Tables
Maps a single SF Financial Accounts to a FINS Account
FINS | Salesforce Financial Account | Description |
---|---|---|
id | id | SF internal ID of the Account |
externalIds[].externalId | Global_Account_Id__c | External ID of the Account |
accountCurrency | CurrencyIsoCode | ISO Currency code used by the Account |
taxIdentificationNumber | FinServTaxIDc | Tax Identification Number of the Account |
accountBalance | FinServBalancec | Balance of the Account |
accountType | FinServFinancialAccountTypec | (enum) Type of Account |
accountLabel | FinServNicknamec | Personalized name of the Account |
availableBalance | FinServCashBalancec | Available balance of the Account |
openedDate | FinServOpenDatec | Date the Account was opened |
closedDate | FinServCloseDatec | Date the Account was closed |
accountNumber | FinServFinancialAccountNumberc | Number of the Account |
accountStatus | FinServStatusc | Current status of the Account |
name | Name | Official name of the Account |
primaryAccountOwner | FinServPrimaryOwnerc | Customer who is the primary owner of the account |
interestRate | FinServInterestRatec | Interest rate for a LoanAccount |
loanAmount | FinServLoanAmountc | Original loan amount for a LoanAccount |
minimumPayment | FinServMinimumPaymentc | Minimum payment per pay period for a LoanAccount |
principalBalance | FinServPrincipalBalancec | Remaining balance for a LoanAccount |
minimumPayment | FinServMinimumPaymentc | Minimum payment per pay period for a LoanAccount |
minimumBalance | FinServMinimumBalancec | The minimum amount that must be held in a Money Market account |
maximumMonthlyWithdrawals | Maximum_Monthly_Withdrawals__c | The maximum number of withdrawals allowed per month |
createdDate | CreatedDate | Date the Account record was created in the system |
createdBy | CreatedById | System user who created the Account |
updatedDate | LastModifiedDate | Date the Account was last modified by a system user |
updatedBy | LastModifiedById | System user who last modified the Account |
map-transactions-to-cim
This transformation produces a list of canonical FINS Transactions from a SF Financial Account Transaction list
Source:
./src/main/resources/dwl/map-transactions-to-cim.dwl
Mapping Tables
Maps aSF Financial Transaction to a FINS Transaction
FINS | Salesforce Financial Account Transaction | Description |
---|---|---|
id | Global_Account_Id__c | ID of the Transaction |
externalIds[].externalId | Id | External ID of the Account |
name | Name | Name of the Transaction |
description | FinServDescriptionc | Description of the Transaction |
amount | FinServAmountc | Total amount of the Transaction |
transactionDate | FinServTransactionDatec | Date the Transaction occurred |
transactionType | FinServTransactionTypec | Type of the Transaction |
transactionSubType | FinServTransactionSubtypec | Subtype of the Transaction |
transactionStatus | FinServTransactionStatusc | Status of the Transaction |
postedDate | FinServPostDatec | Date the Transaction was processed and settled |
debitAccountId | FinServFinancialAccountc | Financial Account the amount is debited from |
creditAccountId | FinServFinancialAccountc | Financial Account the amount is credited to |
isDisputed | FinServIsDisputedc | Whether the Transaction is disputed |
disputedReason | FinServDisputeReasonc | Why the Transaction is disputed |
auditInfo.createdDate | CreatedDate | Datetime when the Transaction record was internally created |
auditInfo.createdBy | CreatedById | User which created the Transaction |
auditInfo.updatedBy | LastModifiedById | User which last modified the Transaction |
auditInfo.updatedDate | LastModifiedDate | Datetime when the Transaction was last modified |
map-cards-to-cim
This transformation produces a list of canonical FINS Cards for a SF Financial Account
Source:
./src/main/resources/dwl/map-cards-to-cim.dwl
Mapping Tables
Maps a SF Financial Card to a FINS Card
FINS | Salesforce Financial Card | Description |
---|---|---|
id | Global_Card_Id__c | ID of the Card |
externalIds[].externalId | Id | External ID of the Card |
name | Name | Name of the Card |
accountIds | FinServFinancialAccountc | Financial Account related to the Card |
cardType | Debit Card | Default value of card type |
cardOwnerId | FinServAccountHolderc | Card Owner Id |
cardholderName | Name | Name of the Card |
cardNumber | FinServBinNumberc | Number on the Card |
cardStatus | FinServActivec | Status of Card |
expiryMonth | FinServValidUntilc | Month of expiry |
expiryYear | FinServValidUntilc | year of expiry |
auditInfo.createdDate | CreatedDate | Datetime when the Card record was internally created |
auditInfo.createdBy | CreatedById | User which created the Card |
auditInfo.updatedBy | LastModifiedById | User which last modified the Card |
auditInfo.updatedDate | LastModifiedDate | Datetime when the Card was last modified |
map-contact-to-cim
Salesforce Contacts pushtopic event message to CIM Mapping
Source:
./src/main/resources/dwl/map-contact-to-cim.dwl
Functions
fun getFormattedDateTime (toFormat)
Formats the date-time to the type accepted by CIM
fun isOrgAccount (isPersonAccount)
Returns whether or not the account is Organization type
Mapping Tables
Maps Salesforce Contact to CIM Individual format
CIM | Salesforce Contact | Description |
---|---|---|
id | Global_Individual_Id__c | The global identifier of the contact in Salesforce |
salutation | Salutation | The salutation of the contact |
personName | Name | The name of the contact |
firstName | FirstName | The first name of the contact |
lastName | LastName | The Last name of the contact |
birthDate | Birthdate | The birth date of the contact |
partyType | Individual | The contact party set as "Individual" |
contactPointType | ContactPointAddress | contactPointType set as "ContactPointAddress" |
id | null | The contactPointAddress id set as null |
activeFromDate | now() | The date from which the contactpoint is active - Set as current date |
addressLine1 | MailingStreet | The mailing address of the contact |
cityName | MailingCity | The mailing city of the contact |
postalCodeText | MailingPostalCode | The contact mailing postal code |
stateProvinceName | MailingState | The contact state province name |
countryName | MailingCountry | The country name of the contact |
geoLatitude | MailingLatitude | The geo-latitude code of the contact |
geoLongitude | MailingLongitude | The geo-longitude code of the contact |
geoAccuracy | MailingGeocodeAccuracy | The geo-code accurate location of the contact |
contactPointType | ContactPointEmail | contactPointType set as "ContactPointEmail" |
id | null | The contactpoint id set as null |
activeFromDate | now() | The date from which the contactpoint is active - Set as current date |
emailAddress | The email address of the contact | |
contactPointType | ContactPointPhone | contactPointType - set as "ContactPointPhone" |
contactPointType | ContactId | The contactpoint id - set as null |
activeFromDate | now() | The date from which the contactpoint is active - Set as current date |
telephoneNumber | Phone | The phone number of the contact |
externalIds.id | null | Id field set as null |
externalIds.externalId | Id | The identifier of the contact in Salesforce |
externalIds.externalIdType | "SALESFORCE_CORE" | The externalId Type set as "SALESFORCE_CORE" |
externalIds.status | VALID | The externalId status is set as VALID |
auditInfo.createdDate | CreatedDate | Timestamp of when the contact was created |
auditInfo.createdBy | CreatedById | Identifies the system or user which created the contact |
auditInfo.updatedDate | LastModifiedDate | Timestamp of when the contact was last updated |
auditInfoupdatedBy | LastModifiedById | Identifies the system or user which last updated the contact |
auditInfo.isDeleted | IsDeleted | Indicates whether or not the contact has been soft-deleted |
map-contact-address-to-cim
This transformation produces a list of canonical FINS ContactPointAddress for a SF Financial Account
Source:
./src/main/resources/dwl/map-contact-address-to-cim.dwl
Mapping Tables
Maps a single SF Contact Address to CIM ContactPointAddress
CIM ContactPointAddress | Salesforce Financial Contact | Description | |
---|---|---|---|
id | null | The contactPointAddress id set as null | |
activeFromDate | now() | The date from which the contactpoint is active | Set as current date |
addressLine1 | MailingStreet | The mailing address of the contact | |
cityName | MailingCity | The mailing city of the contact | |
postalCodeText | MailingPostalCode | The contact mailing postal code | |
stateProvinceName | MailingState | The contact state province name | |
countryName | MailingCountry | The country name of the contact | |
geoLatitude | MailingLatitude | The geo-latitude code of the contact | |
geoLongitude | MailingLongitude | The geo-longitude code of the contact | |
geoAccuracy | MailingGeocodeAccuracy | The geo-code accurate location of the contact | |
party | ID | Id of the Contact which is a Person Account | |
externalIds.id | null | Id field set as null | |
externalIds.externalId | Id | The identifier of the contact in Salesforce | |
externalIds.externalIdType | "SALESFORCE_CORE" | The externalId Type set as "SALESFORCE_CORE" | |
externalIds.status | VALID | The externalId status is set as VALID |
map-customer-and-contact-points-to-cim
Salesforce pushtopic event message to CIM Mapping
Source:
./src/main/resources/dwl/map-customer-and-contact-points-to-cim.dwl
Functions
fun getFormattedDateTime (toFormat)
Formats the date-time to the type accepted by CIM
Mapping Tables
Maps event payload from Salesforce pushtopic to CIM Customer format. The CIM Customer (PartyRole) can have either Individual or Organization as Party. The Salesforce PersonAccount is mapped as a Customer with Party as Individual in CIM. The Salesforce Account is mapped as a Customer with Party as Organization in CIM.
CIM - Customer | Event payload from Salesforce Pushtopic | Description |
---|---|---|
id | Global_Customer_Id__c | The Global Id of the customer in MDM system |
partyRoleType | "Customer" | The party role type - Set as "Customer" |
party[0].id | null | The party identifier - Set as null |
party[0].partyType | "Individual" | The party type - Set as Individual or Organization depending on the Account type |
party[0].personName | FirstName LastName | The Person Name in Salesforce |
party[0].firstName | FirstName | The firstname of the customer in Salesforce |
party[0].lastName | LastName | The lastname of the customer in Salesforce |
party[0].contactPoints[0].contactPointType | "ContactPointAddress" | The contact point type - Set as "ContactPointAddress" |
party[0].contactPoints[0].id | null | The contact point type identifier in Salesforce - Set as null |
party[0].contactPoints[0].activeFromDate | now() | The date from which the contact point is active - Set as current date |
party[0].contactPoints[0].addressLine1 | PersonMailingStreet | The Mailing street of the customer in Salesforce |
party[0].contactPoints[0].cityName | PersonMailingCity | The Mailing City of the customer in Salesforce |
party[0].contactPoints[0].postalCodeText | PersonMailingPostalCode | The postal code of the customer in Salesforce |
party[0].contactPoints[0].stateProvinceName | PersonMailingState | The state province of the customer in Salesforce |
party[0].contactPoints[0].countryName | PersonMailingCountry | The country of the customer in Salesforce |
party[0].contactPoints[0].geoLatitude | PersonMailingLatitude | The latitude co-ordinates of the customer address |
party[0].contactPoints[0].geoLongitude | PersonMailingLongitude | The longitude co-ordinates of the customer address |
party[0].contactPoints[0].geoAccuracy | PersonMailingGeocodeAccuracy The geo-accuracy of the customer address | |
party[0].contactPoints[1].contactPointType | "ContactPointEmail" | The contact point type - Set as "ContactPointEmail" |
party[0].contactPoints[1].id | null | The contact point type identifier in Salesforce - Set as null |
party[0].contactPoints[1].activeFromDate | now() | The date from which the contact point is active - Set as current date |
party[0].contactPoints[1].emailAddress | PersonEmailThe Email address of the customer in Salesforce | |
party[0].contactPoints[2].contactPointType | "ContactPointPhone" | The contact point type - Set as "ContactPointPhone" |
party[0].contactPoints[2].id | null | The contact point type identifier in Salesforce - Set as null |
party[0].contactPoints[2].activeFromDate | now() | The date from which the contact point is active - Set as current date |
party[0].contactPoints[2].telephoneNumber | Phone | The telephone number of the customer in Salesforce |
externalIds[0].id | null | The identifier for the externalId entry - Set as null |
externalIds[0].externalId | Id | The identifier of the customer in Salesforce |
externalIds[0].externalIdType | "SALESFORCE_CORE" | The external identifier type - Set as "SALESFORCE_CORE" |
externalIds[0].status | "VALID" | The status of the ExternalId - Set as "VALID" |
customerNumber | AccountNumber | The customer number stored in Salesforce - default as "" |
customerStatus | "ACTIVE" | The customer Status in Salesforce - Set as Active |
auditInfo.createdDate | getFormattedDateTime(CreatedDate) | Timestamp of when the customer was created |
auditInfo.createdBy | CreatedById | Identifies the system or user which created the customer |
auditInfo.updatedDate | getFormattedDateTime(LastModifiedDate) | Timestamp of when the customer was last updated |
auditInfoupdatedBy | LastModifiedById | Identifies the system or user which last updated the customer |
auditInfo.isDeleted | IsDeleted | Indicates whether or not the customer has been soft-deleted |
map-household-to-cim
Salesforce Households pushtopic event message to CIM Mapping
Source:
./src/main/resources/dwl/map-household-to-cim.dwl
Functions
fun getFormattedDateTime (toFormat)
Formats the date-time to the type accepted by CIM
Mapping Tables
Maps Salesforce Contact to CIM Household format
CIM | Salesforce Contact | Description |
---|---|---|
id | Global_Party_Id__c | The global identifier of the contact in Salesforce |
Name | Name | The name of the Household |
partyType | Household | The party set as "Household" |
externalIds.id | null | Id field set as null |
externalIds.externalId | Id | The identifier of the contact in Salesforce |
externalIds.externalIdType | "SALESFORCE_CORE" | The externalId Type set as "SALESFORCE_CORE" |
externalIds.status | VALID | The externalId status is set as VALID |
auditInfo.createdDate | CreatedDate | Timestamp of when the contact was created |
auditInfo.createdBy | CreatedById | Identifies the system or user which created the contact |
auditInfo.updatedDate | LastModifiedDate | Timestamp of when the contact was last updated |
auditInfoupdatedBy | LastModifiedById | Identifies the system or user which last updated the contact |
auditInfo.isDeleted | IsDeleted | Indicates whether or not the contact has been soft-deleted |
map-leads-to-cim
This transformation produces a list of canonical FINS Transactions from a SF Financial Account Transaction list
Source:
./src/main/resources/dwl/map-leads-to-cim.dwl
Mapping Tables
Maps Salesforce Lead to CIM Lead format
CIM | Salesforce Lead | Description |
---|---|---|
id | Id | The Id of Lead in Salesforce |
salutation | Salutation | The salutation of the lead |
personName | Name | The name of the Lead |
firstName | FirstName | The first name of the contact |
lastName | LastName | The Last name of the contact |
partyRoleType | Lead | The partyRole set as Customer |
partyType | Individual | The contact party set as "Individual" |
contactPointType | ContactPointAddress | contactPointType set as "ContactPointAddress" |
id | null | The contactPointAddress id set as null |
activeFromDate | now() | The date from which the contactpoint is active - Set as current date |
addressLine1 | Street | The street address of the lead |
cityName | City | The city of the lead |
postalCodeText | PostalCode | The postal code of the lead |
stateProvinceName | State | The lead state province name |
countryName | Country | The country name of the lead |
geoLatitude | Latitude | The geo-latitude code of the lead |
geoLongitude | Longitude | The geo-longitude code of the lead |
contactPointType | ContactPointEmail | contactPointType set as "ContactPointEmail" |
id | null | The contactpoint id set as null |
activeFromDate | now() | The date from which the contactpoint is active - Set as current date |
emailAddress | The email address of the lead | |
contactPointType | ContactPointPhone | contactPointType - set as "ContactPointPhone" |
contactPointType | ContactId | The contactpoint id - set as null |
activeFromDate | now() | The date from which the contactpoint is active - Set as current date |
telephoneNumber | Phone | The phone number of the lead |
externalIds.id | null | Id field set as null |
externalIds.externalId | Id | The identifier of the contact in Salesforce |
externalIds.externalIdType | "SALESFORCE_CORE" | The externalId Type set as "SALESFORCE_CORE" by default |
externalIds.status | VALID | The externalId status is set as VALID |
auditInfo.createdDate | CreatedDate | Timestamp of when the contact was created |
auditInfo.createdBy | CreatedById | Identifies the system or user which created the contact |
auditInfo.updatedDate | LastModifiedDate | Timestamp of when the contact was last updated |
auditInfoupdatedBy | LastModifiedById | Identifies the system or user which last updated the contact |
auditInfo.isDeleted | IsDeleted | Indicates whether or not the contact has been soft-deleted |
map-opportunities-to-cim
Salesforce Opportunities pushtopic event message to CIM Mapping
Source:
./src/main/resources/dwl/map-opportunities-to-cim.dwl
Functions
fun getFormattedDateTime (toFormat)
Formats the date-time to the type accepted by CIM
Mapping Tables
Maps Salesforce Contact to CIM Opportunities format
CIM | Salesforce Contact | Description |
---|---|---|
id | Global_Party_Id__c | The global identifier of the Opportinity in Salesforce |
name | Name | The name of the contact |
firstName | Account.FirstName | The First Name of the account |
lastName | Account.Name | The Last Name of the account |
personName | Account.Name | The name of the account |
partyType | Household | The party set as "Opportunity" |
amount | Amount | The amount mentioned in Salesforce |
opportunityType | Type | The type of opportunity in Salesforce |
closeDate | CloseDate | The date on which the opportunity is closed |
stageName | StageName | Current stage of the Opportunity |
isClosed | IsClosed | Is the opportunity closed |
isWon | IsWon | Is the opportunity won |
primaryAccount | AccountId | Account associated with the opportunity |
achTransferAuthDocumentId | Ach Transfer Auth Document Id | Ach Transfer Document Id associated with opportunity |
assetTransferAuthDocumentId | Ach Transfer Auth Document Id | Asset Transfer Document Id associated with opportunity |
hasAllDocumentSignatures | Document Signatures Received | Flag to indicate if all Signatures have been received for the Documents |
hasKnowledgeCheckPassed | KYC Completed | Flag to indicate if KYC Checked have been completed |
contactPoints | Account.Contact | Contacts related to the Account associated with the opportunity |
externalIds.id | null | Id field set as null |
externalIds.externalId | Id | The identifier of the contact in Salesforce |
externalIds.externalIdType | "SALESFORCE_CORE" | The externalId Type set as "SALESFORCE_CORE" |
externalIds.status | VALID | The externalId status is set as VALID |
auditInfo.createdDate | CreatedDate | Timestamp of when the contact was created |
auditInfo.createdBy | CreatedById | Identifies the system or user which created the contact |
auditInfo.updatedDate | LastModifiedDate | Timestamp of when the contact was last updated |
auditInfoupdatedBy | LastModifiedById | Identifies the system or user which last updated the contact |
auditInfo.isDeleted | IsDeleted | Indicates whether or not the contact has been soft-deleted |